/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package gek.uni.diplom.ecore.stack.Stack;

import org.eclipse.emf.ecore.EAttribute;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see gek.uni.diplom.ecore.stack.Stack.StackFactory
 * @model kind="package"
 * @generated
 */
public interface StackPackage extends EPackage {
	/**
   * The package name.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   */
	String eNAME = "Stack";

	/**
   * The package namespace URI.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   */
	String eNS_URI = "gek.uni.dimplom.ecore.stack";

	/**
   * The package namespace name.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   */
	String eNS_PREFIX = "gek.uni.diplom.ecore";

	/**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   */
	StackPackage eINSTANCE = gek.uni.diplom.ecore.stack.Stack.impl.StackPackageImpl.init();

	/**
   * The meta object id for the '{@link gek.uni.diplom.ecore.stack.Stack.impl.StackImpl <em>Stack</em>}' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @see gek.uni.diplom.ecore.stack.Stack.impl.StackImpl
   * @see gek.uni.diplom.ecore.stack.Stack.impl.StackPackageImpl#getStack()
   * @generated
   */
	int STACK = 0;

	/**
   * The feature id for the '<em><b>Size</b></em>' attribute.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int STACK__SIZE = 0;

	/**
   * The feature id for the '<em><b>Children</b></em>' reference list.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int STACK__CHILDREN = 1;

	/**
   * The number of structural features of the '<em>Stack</em>' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int STACK_FEATURE_COUNT = 2;

	/**
   * The meta object id for the '{@link gek.uni.diplom.ecore.stack.Stack.impl.ElementImpl <em>Element</em>}' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @see gek.uni.diplom.ecore.stack.Stack.impl.ElementImpl
   * @see gek.uni.diplom.ecore.stack.Stack.impl.StackPackageImpl#getElement()
   * @generated
   */
	int ELEMENT = 1;

	/**
   * The feature id for the '<em><b>Val</b></em>' attribute.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int ELEMENT__VAL = 0;

	/**
   * The feature id for the '<em><b>Stack</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ELEMENT__STACK = 1;

  /**
   * The number of structural features of the '<em>Element</em>' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int ELEMENT_FEATURE_COUNT = 2;


	/**
   * Returns the meta object for class '{@link gek.uni.diplom.ecore.stack.Stack.Stack <em>Stack</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for class '<em>Stack</em>'.
   * @see gek.uni.diplom.ecore.stack.Stack.Stack
   * @generated
   */
	EClass getStack();

	/**
   * Returns the meta object for the reference list '{@link gek.uni.diplom.ecore.stack.Stack.Stack#getChildren <em>Children</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for the reference list '<em>Children</em>'.
   * @see gek.uni.diplom.ecore.stack.Stack.Stack#getChildren()
   * @see #getStack()
   * @generated
   */
	EReference getStack_Children();

	/**
   * Returns the meta object for the attribute '{@link gek.uni.diplom.ecore.stack.Stack.Stack#getSize <em>Size</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Size</em>'.
   * @see gek.uni.diplom.ecore.stack.Stack.Stack#getSize()
   * @see #getStack()
   * @generated
   */
	EAttribute getStack_Size();

	/**
   * Returns the meta object for class '{@link gek.uni.diplom.ecore.stack.Stack.Element <em>Element</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for class '<em>Element</em>'.
   * @see gek.uni.diplom.ecore.stack.Stack.Element
   * @generated
   */
	EClass getElement();

	/**
   * Returns the meta object for the attribute '{@link gek.uni.diplom.ecore.stack.Stack.Element#getVal <em>Val</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Val</em>'.
   * @see gek.uni.diplom.ecore.stack.Stack.Element#getVal()
   * @see #getElement()
   * @generated
   */
	EAttribute getElement_Val();

	/**
   * Returns the meta object for the reference '{@link gek.uni.diplom.ecore.stack.Stack.Element#getStack <em>Stack</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Stack</em>'.
   * @see gek.uni.diplom.ecore.stack.Stack.Element#getStack()
   * @see #getElement()
   * @generated
   */
  EReference getElement_Stack();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
	StackFactory getStackFactory();

	/**
   * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
   * @generated
   */
	interface Literals {
		/**
     * The meta object literal for the '{@link gek.uni.diplom.ecore.stack.Stack.impl.StackImpl <em>Stack</em>}' class.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @see gek.uni.diplom.ecore.stack.Stack.impl.StackImpl
     * @see gek.uni.diplom.ecore.stack.Stack.impl.StackPackageImpl#getStack()
     * @generated
     */
		EClass STACK = eINSTANCE.getStack();

		/**
     * The meta object literal for the '<em><b>Children</b></em>' reference list feature.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @generated
     */
		EReference STACK__CHILDREN = eINSTANCE.getStack_Children();

		/**
     * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @generated
     */
		EAttribute STACK__SIZE = eINSTANCE.getStack_Size();

		/**
     * The meta object literal for the '{@link gek.uni.diplom.ecore.stack.Stack.impl.ElementImpl <em>Element</em>}' class.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @see gek.uni.diplom.ecore.stack.Stack.impl.ElementImpl
     * @see gek.uni.diplom.ecore.stack.Stack.impl.StackPackageImpl#getElement()
     * @generated
     */
		EClass ELEMENT = eINSTANCE.getElement();

		/**
     * The meta object literal for the '<em><b>Val</b></em>' attribute feature.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @generated
     */
		EAttribute ELEMENT__VAL = eINSTANCE.getElement_Val();

    /**
     * The meta object literal for the '<em><b>Stack</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ELEMENT__STACK = eINSTANCE.getElement_Stack();

	}

} //StackPackage
